
#include <rtthread.h>
#include <rthw.h>

#define IDLE_THREAD_STACK_SIZE 512

extern rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX];

static rt_uint8_t rt_thread_stack[IDLE_THREAD_STACK_SIZE]ALIGN(RT_ALIGN_SIZE);

/* 空闲线程的线程控制块 */
struct rt_thread idle;

rt_ubase_t rt_idletask_ctr = 0; //计数用

/* 空闲线程函数 */
void rt_thread_idle_entry(void *parameter)
{
		parameter = parameter;//避免编译器警告变量未使用
		while (1)
		{
				rt_idletask_ctr++;
		}
}

/* 空闲线程初始化 */
void rt_thread_idle_init(void)
{
		/* 初始化线程 */
		rt_thread_init( &idle,
										"idle",
										rt_thread_idle_entry,
										RT_NULL,
										&rt_thread_stack[0],
										sizeof(rt_thread_stack),
										RT_THREAD_PRIORITY_MAX-1,
										2); /* 时间片 */
		/* 将线程插入到就绪列表 */
//		rt_list_insert_before( &(rt_thread_priority_table[RT_THREAD_PRIORITY_MAX-1]), &(idle.tlist) );
		rt_thread_startup(&idle);
}

